package principal;

import gen.GenP2;

import javax.swing.JFrame;

import mutacion.IMutacion;
import mutacion.MutacionHeuristica;
import mutacion.MutacionInsercion;
import mutacion.MutacionInversion;
import mutacion.MutacionPropio;

import cromosoma.CromosomaViajante;
import cruce.CruceCiclos;
import cruce.CruceOX;
import cruce.CruceOXPP;
import cruce.CrucePMX;
import cruce.ICruce;

import GUI.frame.FrmPrincipal;

public class Main {
	public static void main(String args[]) {
		
		FrmPrincipal f = new FrmPrincipal();
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    
		ICruce _cruce;
		IMutacion _mutacion;
		
		CromosomaViajante c1 = new CromosomaViajante();
		
		for (int i = 0; i < 9; i++)
			c1.set_gen(new GenP2(i+1), i);
		CromosomaViajante c2 = new CromosomaViajante();
		c2.set_gen(new GenP2(1), 0);
		c2.set_gen(new GenP2(2), 1);
		c2.set_gen(new GenP2(6), 2);
		c2.set_gen(new GenP2(9), 3);
		c2.set_gen(new GenP2(4), 4);
		c2.set_gen(new GenP2(7), 5);
		c2.set_gen(new GenP2(3), 6);
		c2.set_gen(new GenP2(8), 7);
		c2.set_gen(new GenP2(5), 8);
		c2.evalua();
		
		_cruce = new CruceCiclos();
		_mutacion = new MutacionPropio();
		
		
		int[] punto_cruce = new int[4];
		punto_cruce[0]=2;
		punto_cruce[1]=3;
		punto_cruce[2]=5;
		punto_cruce[3]=8;
		
		_cruce.cruce(c1, c2, punto_cruce);
		_mutacion.mutacion(c2, 1.0f);
	}
}